inspector: Add an "inspect inspector" button
authorBenjamin Otte <otte@redhat.com>
Tue, 21 Jun 2022 00:33:20 +0000 (02:33 +0200)
committerBenjamin Otte <otte@redhat.com>
Tue, 21 Jun 2022 00:35:02 +0000 (02:35 +0200)
And launch a new inspector.

The location of that button is rather random - I had no idea where to
put it.

gtk/inspector/visual.c
gtk/inspector/visual.ui

index 9a2e44535435dd6d68345435f6945845a60968d5..c3b53bf56d587134a5907cdc7e796db269933632 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "gtkadjustment.h"
 #include "gtkbox.h"
+#include "gtkbutton.h"
 #include "gtkdropdown.h"
 #include "gtkcssproviderprivate.h"
 #include "gtkdebug.h"
@@ -1060,13 +1061,23 @@ update_gl_flag (GtkSwitch     *sw,
 }
 
 static void
-software_gl_activate (GtkSwitch *sw,
-                      GParamSpec *pspec,
+software_gl_activate (GtkSwitch          *sw,
+                      GParamSpec         *pspec,
                       GtkInspectorVisual *vis)
 {
   update_gl_flag (sw, GDK_DEBUG_GL_SOFTWARE, vis);
 }
 
+static void
+inspect_inspector (GtkButton          *button,
+                   GtkInspectorVisual *vis)
+{
+  GtkWidget *inspector_window;
+
+  inspector_window = gtk_inspector_window_get (gtk_widget_get_display (GTK_WIDGET (button)));
+  gtk_window_present (GTK_WINDOW (inspector_window));
+}
+                
 static void
 gtk_inspector_visual_init (GtkInspectorVisual *vis)
 {
@@ -1177,6 +1188,7 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, layout_activate);
   gtk_widget_class_bind_template_callback (widget_class, focus_activate);
   gtk_widget_class_bind_template_callback (widget_class, software_gl_activate);
+  gtk_widget_class_bind_template_callback (widget_class, inspect_inspector);
 
   gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
 }
index a7ce8fed2eccbc582311b7c6e90deb8b39370514..2915a3685d2538fc46b711c3346a90a28a6e3067 100644 (file)
                     </child>
                   </object>
                 </child>
+                <child>
+                  <object class="GtkFrame" id="inspector_frame">
+                    <property name="halign">center</property>
+                    <child>
+                      <object class="GtkListBox">
+                        <property name="selection-mode">none</property>
+                        <property name="show-separators">1</property>
+                        <style>
+                          <class name="rich-list"/>
+                        </style>
+                        <child>
+                          <object class="GtkListBoxRow">
+                            <child>
+                              <object class="GtkButton">
+                                <property name="label" translatable="yes">Inspect Inspector</property>
+                                <property name="halign">center</property>
+                                <property name="valign">center</property>
+                                <signal name="clicked" handler="inspect_inspector"/>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
               </object>
             </child>
           </object>
       <widget name="visual_frame"/>
       <widget name="debug_frame"/>
       <widget name="misc_frame"/>
+      <widget name="inspector_frame"/>
     </widgets>
   </object>
 </interface>